package com.usian.article.feign;


import com.usian.common.dtos.ResponseResult;
import com.usian.model.article.dtos.ArticleDto;
import com.usian.model.article.dtos.AuthorDto;
import com.usian.model.media.dtos.WmNewsDto;
import com.usian.model.media.dtos.WmNewsResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@FeignClient("leadnews-article")//指定当前接口作为leadnews-article服务的feign接口
public interface ArticleFeign {
    /**
     * 根据apUserid 查询作者信息
     * @param apUserId
     * @return
     */
    @GetMapping("/api/v1/author/findByUserId/{id}")
    public AuthorDto findByUserId(@PathVariable("id") Integer apUserId);


    /**
     * 保存作者
     *
     * @param authorDto
     * @return id
     */
    @PostMapping("/api/v1/author/save")
    public Integer saveApAuthor(@RequestBody AuthorDto authorDto);


    /**
     * 保存文章
     * @param wmNewsResultDTO
     * @return id
     */
    @PostMapping("/api/v1/article/save")
    ResponseResult<Long> saveArticle(@RequestBody WmNewsResultDTO wmNewsResultDTO);


    @PostMapping("/api/v1/author/one/{id}")
    public AuthorDto findById(@PathVariable(name = "id") Integer id);


    /**
     * 分页查询文章信息
     * @param page
     * @param size
     * @return
     */
    @GetMapping("/api/v1/article/findByPage")
    List<ArticleDto> findArticleByPage(@RequestParam(name = "page") int page,
                                       @RequestParam(name = "size") int size);


    /*
     * 根据文章id查询app文章信息
     * */
    @GetMapping("/api/v1/article/findById/{id}")
    public ArticleDto findByIdArticle(@PathVariable("id")Long id);

    /*
     * 根据自媒体id查询app文章信息
     * */
    @GetMapping("/api/v1/article/findByWemediaId/{id}")
    public ArticleDto findByWemediaId(@PathVariable("id")Integer id);
}
